from django.http import HttpResponse
from datetime import date

from users.models import Employees, Department
from django.db.models import Q
from django.db.models import Min


# 从 django.http 模块中导入 HttpRespose
from django.views.generic import View

class RegisterView(View):
    """类视图：处理注册"""

    def get(self, request):
        # 查询姓名包含A的所有员工
        namelist = Employees.objects.filter(ename ='A')

        """处理 GET 请求，返回注册页面"""
        print(namelist)
        # 查询员工编号7369 7900 7902的3个员工
        empnolist = Employees.objects.filter(empno =[7369,7900,7902])
        for data in empnolist:
            print(data)

        # 查询1982年9月1日后入职的员工
        b_data = Employees.objects.filter(hiredate__gt=date(1991, 1, 1))
        print(b_data)
        # 查询job 职位是CLERK 或者 sal 薪资大于1500的员工
        jjob = Employees.objects.filter(Q(job ="CLERK") | Q(pk__gt=1500))
        print(jjob)
        # 求 20号部门薪资最低的员工
        min_sal = Employees.objects.aggregate(Min('sal'))
        print(min_sal)
        # 查询30号部门员工,按照薪资从高到低排序
        a = Employees.objects.filter( empno =30)
        b = Employees.objects.all().order_by(-a)
        print(b)

        return HttpResponse()



    def post(self, request):
        # 给20号部门新增一个员工(工号:8888, 姓名:python, 职位:DEV, 上级工号:7902, 入职时间:1991-1-1, 薪资:10000)
        cont = Employees(empno ='8888',ename ='python',job ='DEV',mgr ='7902',hiredate ='1991-1-1',sal =10000)
        cont.save()

        print('RegisterView post')
        return HttpResponse('添加ｐｙｔｈｏｎ')

    def put(self, request):
        # 修改 员工 python的薪资为 6000
        hero = Employees.objects.get(ename ='python')
        hero.sal =600
        hero.save()
        """处理 GET 请求，返回注册页面"""
        print('RegisterView put')
        return HttpResponse('修改薪水')

    def delete(self, request):
        # 删除 员工 python
        hero = Employees.objects.get(ename ='python')

        hero.delete()


        return HttpResponse('删除python')
# 给20号部门新增一个员工(工号:8888, 姓名:python, 职位:DEV, 上级工号:7902, 入职时间:1991-1-1, 薪资:10000)

# 修改 员工 python的薪资为 6000

# 删除 员工 python

# 查询姓名包含A的所有员工

# 查询员工编号7369 7900 7902的3个员工

# 查询1982年9月1日后入职的员工

# 查询job 职位是CLERK 或者 sal 薪资大于1500的员工

# 求 20号部门薪资最低的员工

# 查询30号部门员工,按照薪资从高到低排序

# 查询部门(SALES)的所有员工